
export default class Observer {
    constructor() {
        this.eventObj = {}
    }
    //订阅者
    on(eventId, fn) {
        if(!(eventId in this.eventObj)) {
            this.eventObj[eventId] = []
        }

        //把执行的函数放入数组中去
        this.eventObj[eventId].push(fn)
        // return this
    }

    //发布者
    emit(eventId) {
        let _self = this
         //处理参数
         let handleData = Array.prototype.slice.call(arguments,1)
        //  console.log('leilei-->',handleData);
        //  console.log("leilei-->>",this.eventObj[eventId]);
         //遍历事件对象,执行订阅函数
         for(var i = 0; i < this.eventObj[eventId].length; i++){ 
             this.eventObj[eventId].forEach(fn => {
                 fn.apply(_self,handleData)
             })
         }
        //  return this
    }
}


// let bus = new Observer()
// // 订阅事件
// bus.on('a',function(data){
//     console.log(data)
// })
// // 发布事件
// bus.emit('a',"我是a事件111")

// export default Observer() 

